home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / ISSUE09 / CLINIC / SLISTBOX.PAS < prev    next >
Pascal/Delphi Source File  |  1996-02-18  |  1KB  |  50 lines

  1. unit Slistbox;
  2.  
  3. interface
  4.  
  5. uses
  6.   Messages, Classes, Controls, StdCtrls;
  7.  
  8. type
  9.   TScrollEvent = procedure(Sender: TObject; ScrollCode, Pos: Word) of object;
  10.  
  11.   TSListbox = class(TListBox)
  12.   private
  13.     FOnScroll: TScrollEvent;
  14.     FOnSelChange: TNotifyEvent;
  15.   protected
  16.     procedure WMVScroll(var Msg: TWMVScroll);
  17.       message wm_VScroll;
  18.     procedure CNCommand(var Msg: TWMCommand);
  19.       message cn_Command;
  20.   published
  21.     property OnScroll: TScrollEvent read FOnScroll write FOnScroll;
  22.     property OnSelChange: TNotifyEvent read FOnSelChange write FOnSelChange;
  23.   end;
  24.  
  25. procedure Register;
  26.  
  27. implementation
  28.  
  29. procedure TSListbox.WMVScroll(var Msg: TWMVScroll);
  30. begin
  31.   inherited;
  32.   if Assigned(FOnScroll) then
  33.     FOnScroll(Self, Msg.ScrollCode, Msg.Pos);
  34. end;
  35.  
  36. procedure TSListBox.CNCommand(var Msg: TWMCommand);
  37. begin
  38.   inherited;
  39.   if (Msg.NotifyCode = lbn_SelChange) and
  40.      Assigned(FOnSelChange) then
  41.     FOnSelChange(Self);
  42. end;
  43.  
  44. procedure Register;
  45. begin
  46.   RegisterComponents('Samples', [TSListbox]);
  47. end;
  48.  
  49. end.
  50.